Chris Brenton
CPE 471 Fall 2010

My project procedurally generates trees given a level of depth. It was my goal to semi-randomly generate and model trees while minimizing the self-similarity often found in existing methods of tree generation. Although I had planned to do multiple types of trees, the only one that was finished in time was a pine tree.

The depth prompt

Problems Encountered

I initially tried using an L-system, which is a kind of self-expanding grammar. However, past a certain depth, since the program was calculating the tree from the base string each time it drew, the program began to slow down. To address this, I switched to an algorithm of my own design, which had three mutually recursive functions representing the trunk, branches, and leaves of the tree.

Potential Improvements

Because of the recursion involved, my program got exponentially slower as I increased the level of depth. However, I think that switching my branches from quadrics to simple cubic pyramids would have definitely increased the efficiency of my program.

If I had time, I would have finished the other tree I was working on, which used a modified version of an L-system. However, I focused on the details too early rather than finishing a fully working version then fixing it.

Orders 1-4 (left to right)

Concepts Illustrated

  • Camera (pitch, yaw)
  • Lighting
  • Heirarchical Modeling
  • Order 5